1. Technical Field
The present invention relates generally to the field of computer architecture and, more specifically, to methods and systems for managing resources among multiple operating system images within a logically partitioned data processing system.
2. Description of Related Art
A logical partitioning option (LPAR) within a data processing system (platform) allows multiple copies of a single operating system (OS) or multiple heterogeneous operating systems to be simultaneously run on a single data processing system platform. A partition, within which an operating system image runs, is assigned a non-overlapping subset of the platform's resources. These platform allocable resources include one or more architecturally distinct processors with their interrupt management area, regions of system memory, and I/O adapter bus slots. The partition's resources are represented by its own open firmware device tree to the OS image.
Each distinct OS or image of an OS running within the platform are protected from each other, such that software errors on one logical partition cannot affect the correct operation of any of the other partitions. This is provided by allocating a disjoint set of platform resources to be directly managed by each OS image and by providing mechanisms for ensuring that the various images can not control any resources that have not been allocated to it. Furthermore, software errors in the control of an OS's allocated resources are prevented from affecting the resources of any other image. Thus, each image of the OS (or each different OS) directly controls a distinct set of allocable resources within the platform.
A significant problem with logically partitioned platform has been “when” to run trusted platform firmware to create and enforce the partitioning of the platform's resources. In general, there have been two answers. One solution is to run the firmware prior to starting the OS image, at which time special hardware is set up to restrict the access that the OS image can make. The other solution is to run the firmware when certain privileged instructions that may change the environment are trapped (i.e. prevented from executing). Both of these answers have drawbacks. The special hardware solution results in overly constraining the OS image to run in a fixed set of resources that can be managed by the hardware. The trapping on privileged instruction solution tends to create a significant performance penalty since most of the time the trapped instructions were being used for other purposes than to change the OS image's environment. Therefore, a method of creating and enforcing the partitioning of a platform's resources that allows for the significant flexibility in the assignment of resources of the instruction trap approach, and that also maintains a level of performance more closely associated with the hardware approaches is desirable.